package com.heatup.apt.model.api.course;

import com.heatup.apt.model.Resource;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * api-课程详情接口返回实体(团课/私教/檬营)
 *
 * /api/course/get?id = 课程ID
 *
 * Created by blank on 2017/3/13.
 */
public class CourseDetailModel {

    private String bookType;//临时兼容旧版数据.将会删除

    /**
     * 课程 ID
     */
    private Integer id;

    /**
     * 课程类型
     */
    private String courseType;

    /**
     * 课程标题
     */
    private String title;

    /**
     * 课程时间
     */
    private String schedule;

    /**
     * 课程介绍
     */
    private String introduce;

    /**
     * 课程状态
     */
    private String status;

    /**
     * 课程适合人群
     */
    private String crowd;

    /**
     * 课程当前报名人数(团课/檬营)
     */
    private Integer currentCount;

    /**
     * 课程最大限制人数(团课/檬营)
     */
    private Integer maxCount;

    /**
     * 课程最小限制人数(檬营)
     */
    private Integer minCount;

    /**
     * 课程当前服务器时间(檬营)
     */
    private Date dateNow;

    /**
     * 课程报名截止时间(檬营)
     */
    private Date deadline;

    /**
     * 用户等级 1普通用户 2檬会员
     */
    private String userLevel;



    /**
     * 课程属性标签
     */
    private String courseAttrTemp;
    private List<String> courseAttr;

    /**
     * 教练标签
     */
    private String goodCourseTemp;
    private List<String> goodCourse;


    /**
     * 课程价格
     */
    private CoursePrices coursePrices;

    /**
     * 课程教练
     */
    private CourseCoachInfo coachModel;

    /**
     * 课程门店
     */
    private List<store> stores;


    /**
     * 课程资源
     */
    private List<Resource> resources;

    private Map<String, List<Resource>> images;

    /**
     * 私教是否已经购买过限购1次的课程
     */
    private boolean bougthOne;

    /**
     * 单次购买限制  0限制  1不限
     */
    private Integer isBuyOneTimeLimit;
    /**
     * 单节购买限制  0限制  1不限
     */
    private Integer isBuyOneClassLimit;
    
    private boolean hasYearCardService;// 是否拥有年卡
    
    private boolean hasCourseOrder;// 是否购买过该课程
    
    private Integer productServiceDetailId;
    

    public String getBookType() {
        return bookType;
    }

    public void setBookType(String bookType) {
        this.bookType = bookType;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCourseType() {
        return courseType;
    }

    public void setCourseType(String courseType) {
        this.courseType = courseType;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getSchedule() {
        return schedule;
    }

    public void setSchedule(String schedule) {
        this.schedule = schedule;
    }

    public String getIntroduce() {
        return introduce;
    }

    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getCrowd() {
        return crowd;
    }

    public void setCrowd(String crowd) {
        this.crowd = crowd;
    }

    public Integer getCurrentCount() {
        return currentCount;
    }

    public void setCurrentCount(Integer currentCount) {
        this.currentCount = currentCount;
    }

    public Integer getMaxCount() {
        return maxCount;
    }

    public void setMaxCount(Integer maxCount) {
        this.maxCount = maxCount;
    }

    public Integer getMinCount() {
        return minCount;
    }

    public void setMinCount(Integer minCount) {
        this.minCount = minCount;
    }

    public Date getDateNow() {
        return dateNow;
    }

    public void setDateNow(Date dateNow) {
        this.dateNow = dateNow;
    }

    public Date getDeadline() {
        return deadline;
    }

    public void setDeadline(Date deadline) {
        this.deadline = deadline;
    }

    public String getUserLevel() {
        return userLevel;
    }

    public void setUserLevel(String userLevel) {
        this.userLevel = userLevel;
    }

    public String getCourseAttrTemp() {
        return courseAttrTemp;
    }

    public void setCourseAttrTemp(String courseAttrTemp) {
        this.courseAttrTemp = courseAttrTemp;
    }

    public List<String> getCourseAttr() {
        return courseAttr;
    }

    public void setCourseAttr(List<String> courseAttr) {
        this.courseAttr = courseAttr;
    }

    public String getGoodCourseTemp() {
        return goodCourseTemp;
    }

    public void setGoodCourseTemp(String goodCourseTemp) {
        this.goodCourseTemp = goodCourseTemp;
    }

    public List<String> getGoodCourse() {
        return goodCourse;
    }

    public void setGoodCourse(List<String> goodCourse) {
        this.goodCourse = goodCourse;
    }

    public CoursePrices getCoursePrices() {
        return coursePrices;
    }

    public void setCoursePrices(CoursePrices coursePrices) {
        this.coursePrices = coursePrices;
    }

    public CourseCoachInfo getCoachModel() {
        return coachModel;
    }

    public void setCoachModel(CourseCoachInfo coachModel) {
        this.coachModel = coachModel;
    }

    public List<store> getStores() {
        return stores;
    }

    public void setStores(List<store> stores) {
        this.stores = stores;
    }

    public List<Resource> getResources() {
        return resources;
    }

    public void setResources(List<Resource> resources) {
        this.resources = resources;
    }

    public Map<String, List<Resource>> getImages() {
        return images;
    }

    public void setImages(Map<String, List<Resource>> images) {
        this.images = images;
    }

    public boolean isBougthOne() {
        return bougthOne;
    }

    public void setBougthOne(boolean bougthOne) {
        this.bougthOne = bougthOne;
    }

    public Integer getIsBuyOneTimeLimit() {
        return isBuyOneTimeLimit;
    }

    public void setIsBuyOneTimeLimit(Integer isBuyOneTimeLimit) {
        this.isBuyOneTimeLimit = isBuyOneTimeLimit;
    }

    public Integer getIsBuyOneClassLimit() {
        return isBuyOneClassLimit;
    }

    public void setIsBuyOneClassLimit(Integer isBuyOneClassLimit) {
        this.isBuyOneClassLimit = isBuyOneClassLimit;
    }

	public boolean isHasYearCardService() {
		return hasYearCardService;
	}

	public void setHasYearCardService(boolean hasYearCardService) {
		this.hasYearCardService = hasYearCardService;
	}

	public boolean isHasCourseOrder() {
		return hasCourseOrder;
	}

	public void setHasCourseOrder(boolean hasCourseOrder) {
		this.hasCourseOrder = hasCourseOrder;
	}

	public Integer getProductServiceDetailId() {
		return productServiceDetailId;
	}

	public void setProductServiceDetailId(Integer productServiceDetailId) {
		this.productServiceDetailId = productServiceDetailId;
	}
	
	
    
    
}

/**
 * 课程价格
 */
class CoursePrices {

    /**
     * 课程原价
     */
    private BigDecimal price;

    /**
     * 课程会员价
     */
    private BigDecimal prime_price;

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrime_price() {
        return prime_price;
    }

    public void setPrime_price(BigDecimal prime_price) {
        this.prime_price = prime_price;
    }
}

/**
 * 课程教练信息
 */
class CourseCoachInfo {

    /**
     * 教练 ID
     */
    private Integer id;

    /**
     * 教练昵称
     */
    private String nickName;

    /**
     * 教练头像
     */
    private String headImg;

    /**
     * 教练简介
     */
    private String briefing;

    /**
     * 教练私教案例标题
     */
    private String resourceSampleTitle;

    /**
     * 教练私教案例地址
     */
    private String resourceSampleUrl;
    
    private String personalStatus;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getHeadImg() {
        return headImg;
    }

    public void setHeadImg(String headImg) {
        this.headImg = headImg;
    }

    public String getBriefing() {
        return briefing;
    }

    public void setBriefing(String briefing) {
        this.briefing = briefing;
    }

    public String getResourceSampleTitle() {
        return resourceSampleTitle;
    }

    public void setResourceSampleTitle(String resourceSampleTitle) {
        this.resourceSampleTitle = resourceSampleTitle;
    }

    public String getResourceSampleUrl() {
        return resourceSampleUrl;
    }

    public void setResourceSampleUrl(String resourceSampleUrl) {
        this.resourceSampleUrl = resourceSampleUrl;
    }

	public String getPersonalStatus() {
		return personalStatus;
	}

	public void setPersonalStatus(String personalStatus) {
		this.personalStatus = personalStatus;
	}
	
	
    
    
}

/**
 * 课程门店信息
 */
class store {

    /**
     * 门店 ID
     */
    private Integer storeId;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 门店地址
     */
    private String address;

    /**
     * 门店地址纬度
     */
    private BigDecimal latitude;

    /**
     * 门店地址经度
     */
    private BigDecimal longitude;


    public Integer getStoreId() {
        return storeId;
    }

    public void setStoreId(Integer storeId) {
        this.storeId = storeId;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public BigDecimal getLatitude() {
        return latitude;
    }

    public void setLatitude(BigDecimal latitude) {
        this.latitude = latitude;
    }

    public BigDecimal getLongitude() {
        return longitude;
    }

    public void setLongitude(BigDecimal longitude) {
        this.longitude = longitude;
    }
}




